Дополнительно к практическим работам:
5 работа:
Создание таймера в xaml можно выполнить так:
Описание команда cs для данного задания:
// Сбрасываем таймер, если он уже запущен
_timer?.Stop();
// Получаем текущее время
var now = DateTime.Now;
// Получаем выбранное пользователем время
var selectedTime = timePicker.Time;
// Создаем дату/время из выбранного времени
var targetTime = new DateTime(now.Year, now.Month, now.Day, selectedTime.Hours, selectedTime.Minutes, 0);
// Если время выбрано в прошлом, добавляем один день
if (targetTime <= now)
{
targetTime = targetTime.AddDays(1);
}
-----------------
6 работа:
Пример создания степпера:
-----------------
8 работа:
-------
// Инициализация списка книг
Books = new List
{
new Book("1984", "George Orwell", "Dystopian"),
new Book("To Kill a Mockingbird", "Harper Lee", "Drama"),
new Book("The Great Gatsby", "F. Scott Fitzgerald", "Classic"),
new Book("Moby Dick", "Herman Melville", "Adventure")
};
-----------------
13 работа:
Можно progressbar создавать как-то так:
progressBar = new ProgressBar
{
Progress = 0, // Начальное значение
HorizontalOptions = LayoutOptions.FillAndExpand
};
-----------------
15 работа:
Пример решения без xaml:
using System;
using System.IO; // Для работы с файлами
using Xamarin.Forms;
namespace NoteApp
{
public partial class MainPage : ContentPage
{
// Путь к файлу для сохранения текста
string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "note.txt");
// Элементы интерфейса
Editor noteEditor;
Button saveButton;
Button loadButton;
public MainPage()
{
// Инициализация страницы
InitializeComponent();
// Создаем редактор для ввода текста (Editor)
noteEditor = new Editor
{
BackgroundColor = Color.White,
TextColor = Color.FromHex("#333333"),
FontSize = 16,
Margin = new Thickness(0, 10, 0, 20),
HeightRequest = 200
};
// Создаем кнопку для сохранения текста
saveButton = new Button
{
Text = "Сохранить",
BackgroundColor = Color.LightBlue,
TextColor = Color.White
};
// Создаем кнопку для загрузки текста
loadButton = new Button
{
Text = "Загрузить",
BackgroundColor = Color.LightGreen,
TextColor = Color.White
};
// Обработка нажатия на кнопку "Сохранить"
saveButton.Clicked += OnSaveButtonClicked;
// Обработка нажатия на кнопку "Загрузить"
loadButton.Clicked += OnLoadButtonClicked;
// Упорядочиваем элементы интерфейса в StackLayout
Content = new StackLayout
{
Padding = new Thickness(20),
Children =
{
noteEditor,
saveButton,
loadButton
}
};
}
// Метод для сохранения текста в файл
private async void OnSaveButtonClicked(object sender, EventArgs e)
{
// Проверка: введен ли текст
if (string.IsNullOrWhiteSpace(noteEditor.Text))
{
await DisplayAlert("Ошибка", "Нельзя сохранить пустую заметку!", "ОК");
return;
}
// Сохранение текста в файл
try
{
File.WriteAllText(filePath, noteEditor.Text);
await DisplayAlert("Успех", "Текст успешно сохранен!", "ОК");
}
catch (Exception ex)
{
await DisplayAlert("Ошибка", $"Ошибка при сохранении текста: {ex.Message}", "ОК");
}
}
// Метод для загрузки текста из файла
private async void OnLoadButtonClicked(object sender, EventArgs e)
{
// Проверка: существует ли файл
if (!File.Exists(filePath))
{
await DisplayAlert("Ошибка", "Файл с заметкой не найден!", "ОК");
return;
}
// Чтение текста из файла
try
{
noteEditor.Text = File.ReadAllText(filePath);
await DisplayAlert("Успех", "Текст успешно загружен!", "ОК");
}
catch (Exception ex)
{
await DisplayAlert("Ошибка", $"Ошибка при загрузке текста: {ex.Message}", "ОК");
}
}
}
}
---------------------------
Также дополнительные материалы:
https://learn.microsoft.com/ru-ru/previous-versions/xamarin/
https://xamarin.ru/
https://help.syncfusion.com/xamarin/introduction/overview